home *** CD-ROM | disk | FTP | other *** search
- Path: xanth!cs.odu.edu!Amiga-Request
- From: Amiga-Request@cs.odu.edu (Amiga Sources/Binaries Moderator)
- Newsgroups: comp.sources.amiga
- Subject: v90i046: uucp 1.03D - unix compatible uucp/mail/news system, Part02/16
- Message-ID: <11285@xanth.cs.odu.edu>
- Date: 4 Feb 90 02:29:28 GMT
- Sender: tadguy@cs.odu.edu
- Reply-To: overload!dillon (Matt Dillon)
- Lines: 2449
- Approved: tadguy@cs.odu.edu (Tad Guy)
- X-Mail-Submissions-To: Amiga@cs.odu.edu
-
- Submitted-by: overload!dillon (Matt Dillon)
- Posting-number: Volume 90, Issue 046
- Archive-name: unix/uucp-1.03d/part02
-
- #!/bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 2 (of 16)."
- # Contents: VERSION.DOC lib/.dmailrc lib/Aliases man/Aliases
- # man/Assigns man/Security man/UPDATES man/UUClean man/UUSer
- # man/UUdecode man/UUencode man/man s/.edrc src/MUtil/man.c
- # src/MUtil/trimfile.c src/News060/Anews/mscan.c
- # src/compress/uuencode.c src/dmail/DMakefile src/dmail/cond.c
- # src/dmail/globals.c src/getty/passwd.c src/include/config.h
- # src/lib/config.c src/lib/getpwnam.c src/lib/log.c
- # src/sendmail/parse.c src/uucico/DMakefile src/uucico/sysdep.h
- # src/uucico/uucp.h src/uucico/version.doc src/uuser/misc.c
- # src/uuser/uuser.doc
- # Wrapped by tadguy@xanth on Sat Feb 3 20:50:58 1990
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'VERSION.DOC' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'VERSION.DOC'\"
- else
- echo shar: Extracting \"'VERSION.DOC'\" \(1265 characters\)
- sed "s/^X//" >'VERSION.DOC' <<'END_OF_FILE'
- X
- X
- X VERSION.DOC
- X
- X Matthew Dillon
- X 891 Regal Rd.
- X Berkeley, Ca. 94708
- X
- X pacbell.PacBell.COM!sorinc!overload!dillon
- X
- X The version and sub version of most executables in the distribution may
- X be retrieved by running the 'uident' program on the executable(s).
- X Source directories contain (sporatically) Version.DOC files with
- X remarks on sub-versions for specific executables. This file contains
- X overall remarks on the main version id.
- X
- X1.03D
- X
- X slight changes to postnews (now uses DomainName)
- X
- X Domains fixed (effects only people who use UULIB:Domain)
- X
- X sendmail more intelligent about checking argv[0] to see
- X if it is rmail (now works with WShell)
- X
- X UUCP:LIB paths changed to UULIB:
- X
- X uupoll no longer needs 'brun'
- X
- X Problems.DOC file added
- X
- X1.02D
- X stack warning in SlowSetup.DOC added (stack should be at least
- X 8192). 'Stack 8192' added to sample startup sequence. RNews
- X warning (RNews takes a huge amount of RAM currently) added.
- X
- X1.01D
- X UUCP:LIB paths fixed to use UULIB:
- X
- X1.00D
- X Initial Release 'D' series by Matthew Dillon, based on
- X 0.40, 0.50 and 0.60WPL series by William Loftus.
- X
- X0.60WPL
- X0.50WPL
- X0.40WPL
- X UUCP release series for the Amiga by William Loftus, sub
- X version changes not listed in this file.
- X
- X
- X
- X
- END_OF_FILE
- if test 1265 -ne `wc -c <'VERSION.DOC'`; then
- echo shar: \"'VERSION.DOC'\" unpacked with wrong size!
- fi
- # end of 'VERSION.DOC'
- fi
- if test -f 'lib/.dmailrc' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'lib/.dmailrc'\"
- else
- echo shar: Extracting \"'lib/.dmailrc'\" \(1027 characters\)
- sed "s/^X//" >'lib/.dmailrc' <<'END_OF_FILE'
- X
- X# .DMAILRC file
- X#
- X# not very user friendly. Some aliases may not apply, quick port
- X# from UNIX.
- X
- Xset header uulib:.signature
- Xset replyfields "Reply-To: Return-Path:"
- Xset _headchar :
- X
- X# mail you send is archived by dmail
- Xset archive uumail:mbox
- Xif !comlinemail
- Xalias qdt "dt"
- X# Warning: page mode doesn't work on Amiga's
- Xalias qdb "db"
- Xalias noarch "unset archive"
- Xalias arch "set archive uumail:mbox"
- Xalias ls "! ls"
- Xalias normal "setlist -s 7 From 25 Subject 9 To 0 Cc 10 Date"
- Xalias page set page more -p
- Xalias nopage unset page
- Xalias spool "g uumail:dillon uumail:mbox"
- Xalias mbox "g uumail:mbox"
- Xalias g "qswitch"
- Xalias kill "%var sel Sub $var;d all;sel all"
- Xalias rem "%var nobreak;_spage;set page remember $var;type;_rpage;breakok"
- Xalias _spage "if page;set _page $page;endif"
- Xalias _rpage "if _page;set page $_page;unset _page;else;unset page;endif"
- Xalias tech "qswitch tech; sel News comp.sys.amiga.tech,comp.sys.amiga comp.sys.amiga,comp.sys.amiga.tech; d all; sel all"
- Xnormal
- X#page
- X#cd uucp:mail
- Xendif
- X
- END_OF_FILE
- if test 1027 -ne `wc -c <'lib/.dmailrc'`; then
- echo shar: \"'lib/.dmailrc'\" unpacked with wrong size!
- fi
- # end of 'lib/.dmailrc'
- fi
- if test -f 'lib/Aliases' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'lib/Aliases'\"
- else
- echo shar: Extracting \"'lib/Aliases'\" \(1273 characters\)
- sed "s/^X//" >'lib/Aliases' <<'END_OF_FILE'
- X
- X# SENDMAIL ALIASES.
- X#
- X# Alias for mailer daemon. REFER TO MAN:Aliases for more information.
- X#
- X# # comment character (must be first char on line)
- X# name: addr, addr, addr, addr,
- X# addr, addr, addr, addr
- X#
- X# addr can be (1) any path
- X# (2) >file (append to said file)
- X# (3) <file (include addresses from file, one per line)
- X# (4) "|command" (pipe through a command)
- X# (5) \user (if user is an alias this ignores the alias)
- X#
- X# note that each addr must be comma delimited, and line continuation
- X# depends on whether the last addr on the line has a comma after it.
- X
- XMAILER-DAEMON: postmaster
- X
- X# Following alias is required by the new mail protocol, RFC 822
- Xpostmaster: foo
- X
- X# Aliases to handle mail to msgs and news
- X
- X# Alias for uucp maintenance
- Xuucplist: root
- Xuucp: uucplist
- X
- X# System
- Xmanager: foo
- Xoperator: manager
- Xstaff: foo
- Xnobody:
- X
- X#
- X# smart-aleck aliases
- X#
- Xdaemon: manager
- Xlp: manager
- Xusrlimit: manager
- X
- X#
- X# User
- X#
- X# send mail for foo to foo and also archive it.
- X
- Xfoo: \foo, >uumail:mbox
- X
- Xfriend: fubar!friend
- X
- X# William P. Loftus
- Xwpl: PRC.Unisys.COM!wpl
- X
- X# Matt Dillon
- Xdillon: pacbell.PacBell.COM!sorinc!overload!dillon
- X
- X# Fred Fish, 1835 East Belmont Dr, Tempe, Arizona 85284
- X# 1-602-491-0048
- Xfish: cs.utexas.edu!asuvax!mcdphx!estinc!fnf
- X
- END_OF_FILE
- if test 1273 -ne `wc -c <'lib/Aliases'`; then
- echo shar: \"'lib/Aliases'\" unpacked with wrong size!
- fi
- # end of 'lib/Aliases'
- fi
- if test -f 'man/Aliases' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man/Aliases'\"
- else
- echo shar: Extracting \"'man/Aliases'\" \(1960 characters\)
- sed "s/^X//" >'man/Aliases' <<'END_OF_FILE'
- X
- XNAME
- X UULIB:Aliases
- X
- XDESCRIPTION
- X UULIB:Aliases is a text file containing mail aliases. There
- X is no need to run newaliases after modifying this file (there
- X is no newaliases program). This file is scanned by sendmail
- X for each item of incomming and outgoing email.
- X
- X Each line in UULIB:Aliases may be either blank, have a '#'
- X as the first character to indicate a comment, or begin an
- X alias. An alias consists of a name, colon, and list of
- X items. For example:
- X
- X comiclovers: charlie, ben, lucy, james
- X
- X Multi-line aliases may be specified by a comma at the end of
- X each line to be continued:
- X
- X comiclovers: charlie, ben,
- X lucy, james
- X
- X Note that the last line has no comma. Each item in an alias
- X may be:
- X
- X (1) user a local user name
- X (2) \user forces a local user name if the name is aliased
- X (3) alias another alias
- X (4) path some path
- X (5) >file append the mail item to some file
- X (6) <file load a further list of destinations from a
- X file (one item per line)
- X (7) |command pipe mail item to a command with optional args
- X (8) "|command args"
- X
- X For example, if I want incomming mail to be posted to my mail box
- X AND automatically appended to some archive file (and note here
- X that I must use '\' to prevent an alias loop):
- X
- X dillon: \dillon, >uumail:archive
- X
- X items may point to other aliases (dillon is already an alias):
- X
- X comiclovers: dillon, fred
- X
- X mail may be piped to a command, such as an automated vacation-response
- X program:
- X
- X dillon: \dillon, >uumail:archive, |vacation
- X
- XNEWSGROUPS
- X
- X Newsgroups are difficult to implement with this Aliases
- X implementation because the sender's address is NOT removed
- X from the item list.
- X
- X we hope to implement news propogation via a separate file and
- X the rnews program. When this is done, an alias will usually
- X be required:
- X
- X news: |rnews
- X
- XFILES
- X
- X uulib:Aliases
- X uucp:c/sendmail
- X
- X
- END_OF_FILE
- if test 1960 -ne `wc -c <'man/Aliases'`; then
- echo shar: \"'man/Aliases'\" unpacked with wrong size!
- fi
- # end of 'man/Aliases'
- fi
- if test -f 'man/Assigns' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man/Assigns'\"
- else
- echo shar: Extracting \"'man/Assigns'\" \(1990 characters\)
- sed "s/^X//" >'man/Assigns' <<'END_OF_FILE'
- X
- X ASSIGNMENTS
- X
- X Startup-Sequence Assignments (examples). Note, UUPUB: will in the
- X future be used for 'public' uucp transfers.
- X
- X Assign UUCP: DF0:
- X Assign UUSPOOL: UUCP:Spool
- X Assign UULIB: UUCP:Lib
- X Assign UUMAIL: UUCP:Mail
- X Assign UUNEWS: UUCP:Mail/News
- X Assign UUPUB: UUCP:Pub
- X
- X Assign Getty: UUCP:Lib
- X
- X UULIB:Config entries:
- X
- X NodeName The name by which you want to call your
- X machine. Suggested 7 chars max.
- X
- X UserName Your 'user' name. e.g. dillon. This is
- X where Mail, DMail, and From use as a
- X default for your user name.
- X
- X RealName Your full name. e.g. Matthew Dillon. Used
- X by sendmail (which is run from Mail or
- X DMail)
- X
- X NewsFeed Which remote machine should outgoing
- X news be sent to?
- X
- X Organization Your organization, if any (for News)
- X
- X Filter Foreground filter program (to display a
- X file). Output expected to go through
- X stdout. Used by MAN if RFilter does not
- X exist.
- X
- X RFilter Background filter program (that can be
- X RUNd to display a file)
- X
- X MailEditor The editor DMail uses.
- X
- X NewsEditor The editor postnews uses
- X
- X DomainName The domain of your machine, usually .UUCP
- X This is automatically tacked on to the
- X mail headers when you mail out or mail
- X is routed through your machine.
- X
- X TimeZone PST,PDT, etc... Currently only US timezones
- X are implemented. Used to calculate GMT
- X time from local time for use in mail headers.
- X
- X DefaultNode Normally set to an immediately adjacent
- X USENET node. IF YOU CAN CONNECT TO MORE
- X THAN ONE OTHER USENET NODE REFER TO
- X MAN:DOMAINS FOR INFORMATION ON SELECTING
- X WHICH NODE AN ADDRESS GETS ROUTED THROUGH.
- X
- X Example: 'sorinc.UUCP' if I talk
- X directly to sorinc.
- X
- X You may also specify explicit paths
- X as long as the very first machine is
- X directly adjacent to you (you can call
- X directly).
- X
- END_OF_FILE
- if test 1990 -ne `wc -c <'man/Assigns'`; then
- echo shar: \"'man/Assigns'\" unpacked with wrong size!
- fi
- # end of 'man/Assigns'
- fi
- if test -f 'man/Security' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man/Security'\"
- else
- echo shar: Extracting \"'man/Security'\" \(1178 characters\)
- sed "s/^X//" >'man/Security' <<'END_OF_FILE'
- X
- X
- XNAME
- X UULIB:Security
- X
- XSYNOPSIS
- X -
- X
- XDESCRIPTION
- X The UULIB:Security file governs readability and writability
- X of directories relative to remote uucp requests. The UUSPOOL:
- X directory is always readable and writable.
- X
- X This prevents other nodes from examining or overwriting
- X arbitrary files in your system.
- X
- X The UUCICO program, which does the actual work downloading
- X and uploading files, will check remote-requested paths
- X against this file by comparing inodes (DOS Locks) and not
- X by name. The reason for this is simply that, on the Amiga,
- X several different paths may refer to the same directory.
- X
- X ---- Example Security file (this line not included) ---
- X
- X# This file is used by UUCICO to determine the validity of requests.
- X#
- X# The directories listed here are *allowed* directories for uucp
- X# transfers. The permissions field lists permissions
- X# r -readable
- X# w -writable
- X
- Xtmp: rw
- Xuucp:c r
- Xuucp:man r
- XUUPUB: rw
- X
- X# If you have a UUPUBW: assign that is *different* from UUPUB: then
- X# you might want to make UUPUB: readable only and UUPUBW: read-write.
- X
- X ---- End of Example (this line not included) ---
- X
- XREFERENCES:
- X UUCP, UUCICO
- X
- END_OF_FILE
- if test 1178 -ne `wc -c <'man/Security'`; then
- echo shar: \"'man/Security'\" unpacked with wrong size!
- fi
- # end of 'man/Security'
- fi
- if test -f 'man/UPDATES' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man/UPDATES'\"
- else
- echo shar: Extracting \"'man/UPDATES'\" \(1441 characters\)
- sed "s/^X//" >'man/UPDATES' <<'END_OF_FILE'
- X
- X This file is a listing of all the changes & fixes to UUCP & UseNet that are
- X *NOT* covered by the README file. For more details on changes please read
- X the source code(s).
- X
- X
- XDate Programmer Details
- X-------- ------------ --------------------------------------------------
- X09/22/88 Sneakers Added a tail option to UULOG "-t".
- X
- X09/24/88 Sneakers Tail option of UULOG was broken. It is now fixed.
- X
- X09/24/88 Sneakers Rewrote 'MAIL' command.
- X Removed message header from user editable message.
- X Now gives a warning on ZERO byte messages & exits.
- X
- X09/30/88 Sneakers Rewrote 'Pnews-x' commands.
- X Fixed the broken CopyMessage() routine.
- X Added Include() routine. File to include [None]
- X Added CheckUser() routine. [Send|List|Edit|Abort]
- X
- X10/04/88 Sneakers Mail command was brain dead on multi addresses.
- X Fixed it, and it works great :-)
- X
- X10/07/88 Sneakers Tail option of UULOG was 'still' broken when the
- X LOGFILE was < 10 lines. UULOG is now fixed. And
- X you have Joe Isuzu's word on it :-)
- X
- X10/02/88 Mike Schultz Added support for nonbatched news articles to the
- X Rnews command.
- END_OF_FILE
- if test 1441 -ne `wc -c <'man/UPDATES'`; then
- echo shar: \"'man/UPDATES'\" unpacked with wrong size!
- fi
- # end of 'man/UPDATES'
- fi
- if test -f 'man/UUClean' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man/UUClean'\"
- else
- echo shar: Extracting \"'man/UUClean'\" \(1592 characters\)
- sed "s/^X//" >'man/UUClean' <<'END_OF_FILE'
- X
- XNAME
- X uuclean - uucp spool directory clean-up
- X
- XSYNTAX
- X uuclean [ option ] ...
- X
- XDESCRIPTION
- X The uuclean command scans the spool directory for files with
- X the specified prefix and deletes all those which are older
- X than the specified number of hours.
- X
- XOPTIONS
- X -ppre Scan for files with pre as the file prefix. Up to
- X 10 -p arguments may be specified. A -p without any
- X pre following will cause all files older than the
- X specified time to be deleted.
- X
- X -ntime Delete all files whose age is more than time
- X (default is 72 hours) and that have the specified
- X pre as their file prefix.
- X
- X -m Send mail to the owner of the file when it is
- X deleted.
- X
- X -ssystem
- X Delete files in all directories that are subdirec-
- X tories of the per system spool directory that exists
- X for system. If ALL is specified, then all system
- X directories are processed.
- X
- X -ddirectory
- X Delete files that reside in the named directory. The
- X -s option over rides the -d option.
- X
- X This program will typically be started by cron. In earlier
- X versions, a deleted work file (C.file) would result in
- X mail to the owner of the work file, regardless of the -m
- X option. Now, notification of deleted work files is sent to
- X the user ID "uucp". If the -m option is used, mail is also
- X sent to the owner.
- X
- XFILES
- X UUCP:lib/uucp directory with commands used by
- X uuclean internally
- X
- END_OF_FILE
- if test 1592 -ne `wc -c <'man/UUClean'`; then
- echo shar: \"'man/UUClean'\" unpacked with wrong size!
- fi
- # end of 'man/UUClean'
- fi
- if test -f 'man/UUSer' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man/UUSer'\"
- else
- echo shar: Extracting \"'man/UUSer'\" \(1492 characters\)
- sed "s/^X//" >'man/UUSer' <<'END_OF_FILE'
- X
- X
- XNAME
- X UUser (AmigaDOS Handler)
- X
- XSYNOPSIS
- X Mount uuser:
- X
- X Open Format: uuser:devicename/unit/options
- X Example: uuser:serial.device/0/R1000
- X
- XDESCRIPTION
- X Options: Rn Set read timeout when no data available (millisecs)
- X C0 Ignore carrier detect
- X
- X The UUSER: handler allows arbitrary programs to talk to any
- X serial.device and unit uses Read() and Write() calls.
- X
- X Consequently, stdio may be used as well.
- X
- X UUSER: IS NORMALLY SETUP BY GETTY WHEN IT RUNS A PROGRAM. See
- X GETTY.MAN for more info. Essentially, if a '*' appears before
- X the command-to-run in the passwd file Getty will setup UUSER:
- X on the stdin and stdout of the command it runs after a valid
- X login sequence.
- X
- XDIFFERENCES FROM NORMAL HANDLERS:
- X
- X To avoid a gets() or getc() or read() or Read() (or whatever
- X call you use to read data from stdin), UUSER: times out after
- X 1 second if no characters have been received.
- X
- X If you are using stdio, you get an EOF when this occurs. You
- X can clear the EOF state by calling clrerr(stdin).
- X
- X UUSER: will return immediately when at least one character is
- X ready. Thus, if you do:
- X
- X n = read(0, Buf, 256)
- X
- X n will return:
- X
- X -1 = Lost Carrier
- X 0 = Timeout (loop retry?)
- X 1-256 = Anywhere from 1 to 256 bytes have been recevied
- X
- X UUSER: checks carrier and if it detects carrier is lost, will
- X return an error for both read and write calls.
- X
- X If using stdio for writing, be sure to call fflush(stdout) when
- X you want to flush stdio's buffer to the serial port.
- X
- END_OF_FILE
- if test 1492 -ne `wc -c <'man/UUSer'`; then
- echo shar: \"'man/UUSer'\" unpacked with wrong size!
- fi
- # end of 'man/UUSer'
- fi
- if test -f 'man/UUdecode' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man/UUdecode'\"
- else
- echo shar: Extracting \"'man/UUdecode'\" \(1736 characters\)
- sed "s/^X//" >'man/UUdecode' <<'END_OF_FILE'
- X
- XNAME
- X uuencode, uudecode - encode/decode a binary file for
- X transmission via mail
- X
- XSYNTAX
- X uuencode <infilename >outfilename filename
- X uudecode filename.uu
- X
- XDESCRIPTION
- X The uuencode and uudecode commands are used to send a binary
- X file via uucp (or other) mail.
- X
- X The uuencode command takes the named source file (default
- X standard input) and produces an encoded version on the stan-
- X dard output. The encoding uses only printing ASCII charac-
- X ters, and includes the mode of the file and the remotedest
- X for recreation on the remote system.
- X
- X The uudecode command reads an encoded file, strips off any
- X leading and trailing lines added by mailers, and recreates
- X the original file with the specified mode and name.
- X
- X The intent is that all mail to the user ``decode'' should be
- X filtered through the uudecode program. This way the file is
- X created automatically without human intervention. This is
- X possible on the uucp network by either using sendmail or by
- X making rmail be a link to Mail instead of mail. In each
- X case, an alias must be created in a master file to get the
- X automatic invocation of uudecode.
- X
- X If these facilities are not available, the file can be sent
- X to a user on the remote machine who can uudecode it manu-
- X ally.
- X
- X The encode file has an ordinary text form and can be edited
- X by any text editor to change the mode or remote name.
- X
- XRESTRICTIONS
- X The file is expanded by 35% (3 bytes become 4 plus control
- X information) causing it to take longer to transmit.
- X
- X The user on the remote system who is invoking uudecode
- X (often uucp) must have write permission on the specified
- X file.
- X
- END_OF_FILE
- if test 1736 -ne `wc -c <'man/UUdecode'`; then
- echo shar: \"'man/UUdecode'\" unpacked with wrong size!
- fi
- # end of 'man/UUdecode'
- fi
- if test -f 'man/UUencode' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man/UUencode'\"
- else
- echo shar: Extracting \"'man/UUencode'\" \(1736 characters\)
- sed "s/^X//" >'man/UUencode' <<'END_OF_FILE'
- X
- XNAME
- X uuencode, uudecode - encode/decode a binary file for
- X transmission via mail
- X
- XSYNTAX
- X uuencode <infilename >outfilename filename
- X uudecode filename.uu
- X
- XDESCRIPTION
- X The uuencode and uudecode commands are used to send a binary
- X file via uucp (or other) mail.
- X
- X The uuencode command takes the named source file (default
- X standard input) and produces an encoded version on the stan-
- X dard output. The encoding uses only printing ASCII charac-
- X ters, and includes the mode of the file and the remotedest
- X for recreation on the remote system.
- X
- X The uudecode command reads an encoded file, strips off any
- X leading and trailing lines added by mailers, and recreates
- X the original file with the specified mode and name.
- X
- X The intent is that all mail to the user ``decode'' should be
- X filtered through the uudecode program. This way the file is
- X created automatically without human intervention. This is
- X possible on the uucp network by either using sendmail or by
- X making rmail be a link to Mail instead of mail. In each
- X case, an alias must be created in a master file to get the
- X automatic invocation of uudecode.
- X
- X If these facilities are not available, the file can be sent
- X to a user on the remote machine who can uudecode it manu-
- X ally.
- X
- X The encode file has an ordinary text form and can be edited
- X by any text editor to change the mode or remote name.
- X
- XRESTRICTIONS
- X The file is expanded by 35% (3 bytes become 4 plus control
- X information) causing it to take longer to transmit.
- X
- X The user on the remote system who is invoking uudecode
- X (often uucp) must have write permission on the specified
- X file.
- X
- END_OF_FILE
- if test 1736 -ne `wc -c <'man/UUencode'`; then
- echo shar: \"'man/UUencode'\" unpacked with wrong size!
- fi
- # end of 'man/UUencode'
- fi
- if test -f 'man/man' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man/man'\"
- else
- echo shar: Extracting \"'man/man'\" \(1168 characters\)
- sed "s/^X//" >'man/man' <<'END_OF_FILE'
- X
- XNAME
- X
- X man - look up documentation on a command
- X
- XSYNOPSIS
- X
- X man command_1 command_2 ... command_N
- X
- XDESCRIPTION
- X
- X "Man" looks in the volume or directory "MAN:" for information
- X about the given commands, and then displays it on the screen.
- X
- X Here is exactly how "Man" works. If you type "Man myCommand",
- X "Man" looks in the directory MAN: for a file called "myCommand".
- X If it finds the file, it displays it on the screen using the
- X file viewing program "more". ("More" is on the Commodore-Amiga
- X V1.2 Extras disk.) If no such file is found, you are told.
- X
- X So... for any program that you have, put its documentation file
- X in MAN:. Name the documentation file the same as the program
- X itself. Instead of searching for that documentation next time,
- X all you have to do is type "Man command-name".
- X
- X
- XFILES
- X
- X UULIB:Config , RFilter or Filter entry sets command Man uses
- X to display a manual page.
- X
- X MAN: Manual directory.
- X
- X More File viewing program, must be in your search path and
- X named "MORE" but does not have to be CBM's more program.
- X
- X Assign For "Assign MAN: some-directory-of-your-choice".
- X
- END_OF_FILE
- if test 1168 -ne `wc -c <'man/man'`; then
- echo shar: \"'man/man'\" unpacked with wrong size!
- fi
- # end of 'man/man'
- fi
- if test -f 's/.edrc' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'s/.edrc'\"
- else
- echo shar: Extracting \"'s/.edrc'\" \(1379 characters\)
- sed "s/^X//" >'s/.edrc' <<'END_OF_FILE'
- X
- Xignorecase on
- Xsavetabs on
- Xmap c-tab (ping 0 while c=32 right repeat tr (( ) left) pong 0 down)
- Xmap cs-tab `del del del del down'
- Xmap a-tab `goto block while cb `c-tab down''
- Xmap as-tab `goto block while cb `cs-tab down''
- Xmap s-f9 `saveas ram:\$filename'
- Xmap a-/ (escimm (findstr ) escimm (repstr ) repeat -1 nextr)
- Xmap c-m menuon
- Xmap c-right (repeat 8 tab)
- Xmap c-left (repeat 8 backtab)
- Xmap s-return return
- Xmap (a- ) (( ))
- X
- Xmap c-f1 (scanf %s bottom insfile \$scanf)
- Xmap c-f2 (scanf %s newfile \$scanf)
- Xmap c-f3 (scanf %s newwindow newfile \$scanf)
- Xmap s-f7 (setfont topaz.font 7)
- Xmap c-[ (ping 1 iconify ctags)
- X
- X# DIFF / old version support. The following macros automatically
- X# diff the file being saved with the old version and save the diff
- X#
- X# s-f3 will retrieve the 'old' version. Aweesome.
- X
- Xmap s-f3 (set old (\$filename) execute (undiff >T:dme_temp \$filename tmp:diff/\$(fname).D) newwindow newfile T:dme_temp chfilename \$old unset old)
- X
- Xmap cs-d (execute (copy \$filename T:dme_temp) saveold execute (diff >tmp:diff/\$(fname).D T:dme_temp \$filename))
- X#map f8 (cs-d escimm (newfile ))
- X#map f9 (cs-d )
- X#map f10 (cs-d quit)
- Xmap s-f8 (saveold escimm (newfile ))
- Xmap s-f9 (saveold)
- Xmap s-f10 (saveold quit)
- X
- Xaddpath autodocs:
- Xaddpath autoincs:
- Xaddpath src:suplib/doc
- Xaddpath src:dres/doc
- Xaddpath src:commonlib/doc
- X
- END_OF_FILE
- if test 1379 -ne `wc -c <'s/.edrc'`; then
- echo shar: \"'s/.edrc'\" unpacked with wrong size!
- fi
- # end of 's/.edrc'
- fi
- if test -f 'src/MUtil/man.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/MUtil/man.c'\"
- else
- echo shar: Extracting \"'src/MUtil/man.c'\" \(1032 characters\)
- sed "s/^X//" >'src/MUtil/man.c' <<'END_OF_FILE'
- X
- X/*
- X * MAN.C
- X *
- X * MAN <topic>
- X *
- X * searches for MAN:topic or MAN:topic.Doc
- X */
- X
- X#include <stdio.h>
- X#include <stdlib.h>
- X#include <config.h>
- X#include "/version.h"
- X
- XIDENT(".00");
- X
- Xvoid
- Xmain(ac, av)
- Xchar *av[];
- X{
- X short i;
- X static char Buf[256];
- X
- X for (i = 1; i < ac; ++i) {
- X char *topic = av[i];
- X
- X if (Man(topic) == 0) {
- X sprintf(Buf, "MAN:%s", topic);
- X if (Man(Buf) == 0) {
- X sprintf(Buf, "MAN:%s.Doc", topic);
- X if (Man(Buf) == 0)
- X printf("Unable to open MAN:%s or MAN:%s.Doc\n", topic, topic);
- X }
- X }
- X }
- X}
- X
- XMan(file)
- Xchar *file;
- X{
- X FILE *fi = fopen(file, "r");
- X char *filter = FindConfig(RFILTER);
- X short rb = 1;
- X static char Cmd[256];
- X
- X if (fi == NULL)
- X return(0);
- X if (filter == NULL) {
- X if ((filter = FindConfig(FILTER)) == NULL) {
- X printf("UULIB:Config, no 'Filter' entry\n");
- X return(0);
- X }
- X rb = 0;
- X }
- X fclose(fi);
- X if (rb)
- X sprintf(Cmd, "Run >nil: <nil: %s %s", filter, file);
- X else
- X sprintf(Cmd, "%s %s", filter, file);
- X Execute(Cmd, NULL, NULL);
- X}
- X
- END_OF_FILE
- if test 1032 -ne `wc -c <'src/MUtil/man.c'`; then
- echo shar: \"'src/MUtil/man.c'\" unpacked with wrong size!
- fi
- # end of 'src/MUtil/man.c'
- fi
- if test -f 'src/MUtil/trimfile.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/MUtil/trimfile.c'\"
- else
- echo shar: Extracting \"'src/MUtil/trimfile.c'\" \(1801 characters\)
- sed "s/^X//" >'src/MUtil/trimfile.c' <<'END_OF_FILE'
- X
- X/*
- X * TRIMFILE file1 file2 .. filen -lines
- X *
- X * (C) Copyright 1989-1990 by Matthew Dillon, All Rights Reserved.
- X *
- X * Trims the specified files to the specified number of lines. Each
- X * file is read and the last N lines written back.
- X *
- X * Normally used to trim log files based on a crontab entry. If no
- X * -lines argument is given the file is trimmed to 100 lines.
- X *
- X * Each line may be up to 255 characters in length.
- X */
- X
- X#include <stdio.h>
- X#include <stdlib.h>
- X
- X#define LINSIZE 256
- X
- Xchar **LineBuf;
- Xlong Lines = 100;
- X
- Xvoid MemErr();
- Xvoid TrimFile();
- X
- Xvoid
- Xmain(ac, av)
- Xchar *av[];
- X{
- X short i;
- X for (i = 1; i < ac; ++i) {
- X if (av[i][0] == '-')
- X Lines = atol(av[i] + 1);
- X }
- X if (Lines < 0) {
- X fprintf(stderr, "Illegal line specification %d\n", Lines);
- X exit(1);
- X }
- X
- X /*
- X * Allocating one more than necessary handles the Lines == 0 case
- X * as well as supplying a scratch buffer for the last fgets that
- X * fails.
- X */
- X
- X LineBuf = malloc(sizeof(char *) * (Lines + 1));
- X if (LineBuf == NULL)
- X MemErr();
- X for (i = 0; i <= Lines; ++i) {
- X LineBuf[i] = malloc(LINSIZE);
- X if (LineBuf[i] == NULL)
- X MemErr();
- X }
- X for (i = 1; i < ac; ++i) {
- X char *ptr = av[i];
- X
- X if (*ptr == '-')
- X continue;
- X TrimFile(ptr);
- X }
- X}
- X
- Xvoid
- XMemErr()
- X{
- X fprintf(stderr, "Not enough memory!\n");
- X exit(1);
- X}
- X
- Xvoid
- XTrimFile(name)
- Xchar *name;
- X{
- X FILE *fi = fopen(name, "r");
- X long rep;
- X long i;
- X
- X if (fi == NULL)
- X return;
- X
- X i = 0;
- X rep = 0;
- X while (fgets(LineBuf[i], LINSIZE, fi)) {
- X if (++i > Lines) {
- X i = 0;
- X rep = 1;
- X }
- X }
- X fclose(fi);
- X
- X if (rep == 0)
- X return;
- X
- X if (fi = fopen(name, "w")) {
- X long j;
- X for (j = Lines; j; --j) {
- X if (++i > Lines)
- X i = 0;
- X fputs(LineBuf[i], fi);
- X }
- X fclose(fi);
- X }
- X}
- X
- END_OF_FILE
- if test 1801 -ne `wc -c <'src/MUtil/trimfile.c'`; then
- echo shar: \"'src/MUtil/trimfile.c'\" unpacked with wrong size!
- fi
- # end of 'src/MUtil/trimfile.c'
- fi
- if test -f 'src/News060/Anews/mscan.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/News060/Anews/mscan.c'\"
- else
- echo shar: Extracting \"'src/News060/Anews/mscan.c'\" \(1607 characters\)
- sed "s/^X//" >'src/News060/Anews/mscan.c' <<'END_OF_FILE'
- X
- X/*
- X * mscan - Scan directories and return a sorted list of file names,
- X * one at a time.
- X *
- X * This code originally taken from sysdep.c:
- X *
- X * (C) Copyright 1987 by John Gilmore
- X * Copying and use of this program are controlled by the terms of the Free
- X * Software Foundation's GNU Emacs General Public License.
- X *
- X * Amiga Changes Copyright 1988 by William Loftus. All rights reserved.
- X *
- X * Rewrite for use with manx (or lattice), and Anews.
- X */
- X
- X#include <stdio.h>
- X#include <stdlib.h>
- X
- X#define MAXFILES 512
- X
- Xstatic char names[MAXFILES*10];
- Xstatic char *pointers[MAXFILES];
- X
- Xint file_pointer; /* External so that it can be read/written */
- X
- Xstatic valid = 0;
- X
- Xchar *
- Xread_directory(dir)
- Xchar *dir;
- X{
- X int count, mycmp();
- X char *scdir();
- X char path[128];
- X
- X file_pointer = 0;
- X if (dir) {
- X getcwd(path,127);
- X chdir(dir);
- X }
- X
- X count = getfnl("#?", names, sizeof(names), 0);
- X
- X if (dir) chdir(path);
- X
- X if (count > 0) {
- X if (strbpl(pointers, MAXFILES, names) != count) {
- X printf("Too many files\n");
- X return (char *)NULL;
- X }
- X } else {
- X return (char *)NULL;
- X }
- X
- X qsort((char *)pointers, count, sizeof(char *), mycmp);
- X
- X valid = 1; /* We have some files, and more important, some space has
- X been malloc'd */
- X
- X return (char *)1;
- X}
- X
- Xchar *
- Xget_next_file()
- X{
- X char *p;
- X
- X if ( (p=pointers[file_pointer++]) == NULL )
- X file_pointer=0;
- X return p;
- X}
- X
- Xfree_directory()
- X{
- X int i;
- X if (valid) {
- X for(i=0;pointers[i] != NULL;i++)
- X free(pointers[i]);
- X
- X valid = 0;
- X }
- X return(0);
- X}
- X
- Xmycmp(a,b)
- Xchar **a,**b;
- X{
- X return (atol(*a)-atol(*b));
- X}
- X
- X
- END_OF_FILE
- if test 1607 -ne `wc -c <'src/News060/Anews/mscan.c'`; then
- echo shar: \"'src/News060/Anews/mscan.c'\" unpacked with wrong size!
- fi
- # end of 'src/News060/Anews/mscan.c'
- fi
- if test -f 'src/compress/uuencode.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/compress/uuencode.c'\"
- else
- echo shar: Extracting \"'src/compress/uuencode.c'\" \(2000 characters\)
- sed "s/^X//" >'src/compress/uuencode.c' <<'END_OF_FILE'
- X
- X/*
- X * uuencode [input] output
- X *
- X * Encode a file so it can be mailed to a remote system.
- X */
- X
- X#include <stdio.h>
- X#include "/version.h"
- X
- XIDENT(".00");
- X
- X#ifdef UNIX
- X# include <sys/types.h>
- X# include <sys/stat.h>
- X#endif
- X
- X#ifdef VMS
- X# include <types.h>
- X# include <stat.h>
- X#endif
- X
- X/* ENC is the basic 1 character encoding function to make a char printing */
- X#define ENC(c) (((c) & 077) + ' ')
- X
- Xvoid outdec();
- Xvoid encode();
- X
- Xvoid
- Xmain(argc, argv)
- Xchar **argv;
- X{
- X FILE *in;
- X#ifdef UNIX | VMS
- X struct stat sbuf;
- X#endif
- X int mode;
- X
- X /* optional 1st argument */
- X if (argc > 2) {
- X if ((in = fopen(argv[1], "r")) == NULL) {
- X perror(argv[1]);
- X exit(1);
- X }
- X argv++; argc--;
- X } else
- X in = stdin;
- X
- X if (argc != 2) {
- X printf("Usage: uuencode [infile] remotefile\n");
- X exit(2);
- X }
- X
- X /* figure out the input file mode */
- X#ifdef UNIX | VMS
- X fstat(fileno(in), &sbuf);
- X mode = sbuf.st_mode & 0777;
- X#endif
- X
- X#ifdef AMIGA
- X mode = 0777;
- X#endif
- X printf("begin %o %s\n", mode, argv[1]);
- X
- X encode(in, stdout);
- X
- X printf("end\n");
- X exit(0);
- X}
- X
- X/*
- X * copy from in to out, encoding as you go along.
- X */
- X
- Xvoid
- Xencode(in, out)
- XFILE *in;
- XFILE *out;
- X{
- X char buf[80];
- X int i, n;
- X
- X for (;;) {
- X /* 1 (up to) 45 character line */
- X n = fr(in, buf, 45);
- X putc(ENC(n), out);
- X
- X for (i=0; i<n; i += 3)
- X outdec(&buf[i], out);
- X
- X putc('X', out);
- X putc('\n', out);
- X
- X if (n <= 0)
- X break;
- X }
- X}
- X
- X/*
- X * output one group of 3 bytes, pointed at by p, on file f.
- X */
- Xvoid
- Xoutdec(p, f)
- Xchar *p;
- XFILE *f;
- X{
- X int c1, c2, c3, c4;
- X
- X c1 = *p >> 2;
- X c2 = (*p << 4) & 060 | (p[1] >> 4) & 017;
- X c3 = (p[1] << 2) & 074 | (p[2] >> 6) & 03;
- X c4 = p[2] & 077;
- X putc(ENC(c1), f);
- X putc(ENC(c2), f);
- X putc(ENC(c3), f);
- X putc(ENC(c4), f);
- X}
- X
- X/* fr: like read but stdio */
- Xint
- Xfr(fd, buf, cnt)
- XFILE *fd;
- Xchar *buf;
- Xint cnt;
- X{
- X int c, i;
- X
- X for (i=0; i<cnt; i++) {
- X c = getc(fd);
- X if (c == EOF)
- X return(i);
- X buf[i] = c;
- X }
- X return (cnt);
- X}
- X
- X#ifdef AMIGA
- Xperror(err)
- Xchar *err;
- X{
- X printf("Can not open file \"%s\"\n", err);
- X return(NULL);
- X}
- X#endif
- END_OF_FILE
- if test 2000 -ne `wc -c <'src/compress/uuencode.c'`; then
- echo shar: \"'src/compress/uuencode.c'\" unpacked with wrong size!
- fi
- # end of 'src/compress/uuencode.c'
- fi
- if test -f 'src/dmail/DMakefile' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/dmail/DMakefile'\"
- else
- echo shar: Extracting \"'src/dmail/DMakefile'\" \(1616 characters\)
- sed "s/^X//" >'src/dmail/DMakefile' <<'END_OF_FILE'
- X
- X#VERSION 1.11
- X#
- X# Written by Matthew Dillon
- X#
- X# (C)Copyright 1986-89 by Matthew Dillon
- X#
- X# This code is completely original. I declare this code to be public
- X# domain. You may redistribute this code as long as any those
- X# redistributions contain this and all other files in their entirety.
- X#
- X# Ports: Anybody may port this code to any machine or OS they wish, of
- X# course. If you do make a port, I would be grateful if you mailed
- X# a letter with: (A) OS you ported it too, and (B) version ported,
- X# so I may inform people who have mailed me wondering about ports
- X# who to contact.
- X#
- X# Send bug reports and other gripes to:
- X#
- X# dillon@ucbvax.berkeley.edu ARPA NET
- X# ..!ihnp4!ucbvax!dillon USENET
- X#
- X# INSTRUCTIONS FOR COMPILING:
- X#
- X# (1) Set DESTDIR & HELP_DIR to some global directory accessable to
- X# everybody (or whatever). Also set HELP_CHMOD and PROG_CHMOD
- X# to the right thing if you don't like the defaults.
- X#
- X# (2) Do ONE of the following:
- X# make -defaults to internal help file
- X# make external -external help file (executable is smaller)
- X#
- X# (3) make install to install the file(s)
- X#
- X
- XOD= ltmp:dmail/
- XEXE= uucp:c/dmail
- XSYMS= uucp:src/lib/all.m
- XCFLAGS= -iuucp:src/include/
- X
- XLIBS= uucp:src/lib/uucp.lib lib:lc.lib lib:amiga.lib
- X
- XSRCS= globals.c main.c do_lists.c sub.c execom.c commands.c \
- X range.c load_mail.c sendmail.c set.c help.c cond.c compat.c
- X
- XOBJS= $(SRCS:"*.c":"$(OD)*.o")
- X
- X$(EXE): $(OBJS)
- X cd $(OD)
- X list #?.o TO T:DMAILOBJS LFORMAT %s
- X blink lib:c.o WITH T:DMAILOBJS LIB $(LIBS) TO %(left)
- X cd
- X
- X$(OBJS) : $(SRCS)
- X lc $(CFLAGS) -H$(SYMS) -o%(left) %(right)
- X
- END_OF_FILE
- if test 1616 -ne `wc -c <'src/dmail/DMakefile'`; then
- echo shar: \"'src/dmail/DMakefile'\" unpacked with wrong size!
- fi
- # end of 'src/dmail/DMakefile'
- fi
- if test -f 'src/dmail/cond.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/dmail/cond.c'\"
- else
- echo shar: Extracting \"'src/dmail/cond.c'\" \(1358 characters\)
- sed "s/^X//" >'src/dmail/cond.c' <<'END_OF_FILE'
- X
- X/*
- X * COND.C
- X *
- X * (C) Copyright 1985-1990 by Matthew Dillon, All Rights Reserved.
- X *
- X * Conditional routines.
- X *
- X * if [!]variable
- X * else
- X * endif
- X *
- X */
- X
- X#include <stdio.h>
- X#include "dmail.h"
- X
- X#define MAXIF 16
- X
- Xstatic int Disable_if, Disable_case;
- X
- Xstatic int If_level;
- Xstatic char If_state[MAXIF];
- X
- Xdo_if()
- X{
- X char *str = av[1];
- X int result = 0;
- X
- X if (ac != 2) {
- X puts ("if: bad args");
- X return(-1);
- X }
- X if (Disable_if) {
- X ++Disable_if;
- X return (1);
- X }
- X if (If_level == MAXIF) {
- X puts ("Too many level's of IF's");
- X return (-1);
- X }
- X if (*str == '!') {
- X ++str;
- X result = 1;
- X }
- X if (get_var(LEVEL_SET, str))
- X result = 1 - result;
- X if (!result)
- X ++Disable_if;
- X If_state[If_level++] = result;
- X XDisable = Disable_if + Disable_case;
- X return (1);
- X}
- X
- Xdo_else()
- X{
- X if (Disable_if > 1)
- X return (1);
- X if (If_level < 1) {
- X puts ("else without if");
- X return (-1);
- X }
- X Disable_if = !(If_state[If_level - 1] = 1 - If_state[If_level - 1]);
- X XDisable = Disable_if + Disable_case;
- X return (1);
- X}
- X
- Xdo_endif()
- X{
- X if (Disable_if == 1) {
- X --If_level;
- X Disable_if = 0;
- X } else
- X if (Disable_if > 1) {
- X --Disable_if;
- X } else {
- X if (If_level == 0) {
- X puts ("endif without if");
- X return (-1);
- X }
- X --If_level;
- X Disable_if = 0;
- X }
- X XDisable = Disable_if + Disable_case;
- X return (1);
- X}
- X
- X
- END_OF_FILE
- if test 1358 -ne `wc -c <'src/dmail/cond.c'`; then
- echo shar: \"'src/dmail/cond.c'\" unpacked with wrong size!
- fi
- # end of 'src/dmail/cond.c'
- fi
- if test -f 'src/dmail/globals.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/dmail/globals.c'\"
- else
- echo shar: Extracting \"'src/dmail/globals.c'\" \(1850 characters\)
- sed "s/^X//" >'src/dmail/globals.c' <<'END_OF_FILE'
- X
- X/*
- X * GLOBALS.C
- X *
- X * (C) Copyright 1985-1990 by Matthew Dillon, All Rights Reserved.
- X *
- X * Declarations for most global variables.
- X *
- X */
- X
- X#include <stdio.h>
- X#include "dmail.h"
- X
- XFILE *m_fi; /* open file ptr to spool file */
- Xchar *mail_file; /* name of from (spool) file */
- Xchar *output_file; /* name of out file (i.e. mbox) */
- Xchar *user_name; /* user name from password entry*/
- Xchar *home_dir; /* home directory of user */
- Xchar *visual; /* visual editor path */
- Xchar Buf[MAXFIELDSIZE]; /* Scratch Buffer */
- Xchar Puf[MAXFIELDSIZE]; /* Another Scratch Buffer */
- Xjmp_buf env[LONGSTACK]; /* Holds longjump (break) stack */
- Xint Did_cd; /* Set if user does a CD */
- Xint XDebug; /* Debug mode */
- Xint Longstack, Breakstack; /* longjump/break level stack */
- Xint Entries, Current; /* #Entries and Current entry */
- Xint XDisable; /* Disable non-cond comm exec. */
- Xint ac; /* internal argc, from/to stat */
- Xint No_load_mail; /* disable loading of mail */
- Xint lmessage_overide; /* Overide initial 'X items ... */
- Xint Silence; /* -s command option status */
- Xstruct ENTRY *Entry; /* Base of Entry list */
- Xchar *av[128]; /* internal argv[] */
- Xchar *Nulav[3] = { "", "", NULL };
- X
- Xint width[MAXLIST] = { 18, 38, 10 }; /* Default setlist params */
- Xint header[MAXLIST] = { 0, 2, 1 };
- Xint Listsize = 3;
- X
- X/* The following are globals variables definable from the 'set' command */
- X
- Xchar *S_sendmail; /* sendmail program path */
- Xint S_page; /* Paging status */
- Xint S_novibreak; /* vi-break status */
- Xint S_verbose; /* sendmail verbose status */
- Xint S_ask; /* Ask what to do after mail ed */
- Xint S_archive; /* Archive sent mail */
- X
- END_OF_FILE
- if test 1850 -ne `wc -c <'src/dmail/globals.c'`; then
- echo shar: \"'src/dmail/globals.c'\" unpacked with wrong size!
- fi
- # end of 'src/dmail/globals.c'
- fi
- if test -f 'src/getty/passwd.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/getty/passwd.c'\"
- else
- echo shar: Extracting \"'src/getty/passwd.c'\" \(1689 characters\)
- sed "s/^X//" >'src/getty/passwd.c' <<'END_OF_FILE'
- X
- X/*
- X * PASSWD.C
- X *
- X * (C) Copyright 1989-1990 by Matthew Dillon, All Rights Reserved.
- X *
- X */
- X
- X#include <exec/types.h>
- X#include <libraries/dosextens.h>
- X#include <stdio.h>
- X#include <stdlib.h>
- X#include <pwd.h>
- X#include <proto/all.h>
- X
- X#include "log.h"
- X
- X#define BTOCP(bp,type) ((type)((long)bp << 2))
- X
- Xextern long NullFH;
- Xextern char LoginBuf[];
- Xextern char PasswdBuf[];
- Xextern char *DeviceName;
- Xextern long DeviceUnit;
- X
- Xstatic struct passwd *Pas;
- X
- XCheckLoginAndPassword()
- X{
- X Pas = getpwnam(LoginBuf);
- X
- X if (Pas == NULL)
- X return(0);
- X if (strcmp(Pas->pw_passwd, "*") == 0)
- X return(1);
- X if (strcmp(PasswdBuf, Pas->pw_passwd) == 0)
- X return(1);
- X return(0);
- X}
- X
- Xvoid
- XRunPasswdEntry()
- X{
- X static char buf[256];
- X static char redir[128];
- X char *arg0 = Pas->pw_shell_arg0;
- X struct Process *proc = (struct Process *)FindTask(NULL);
- X APTR oldConsoleTask = proc->pr_ConsoleTask;
- X BPTR oldDir;
- X BPTR DirLock;
- X
- X strcpy(redir, " ");
- X
- X if (*arg0 == '*') {
- X ++arg0;
- X sprintf(redir, " >UUSER:%s/%d/R1000G1 <UUSER:%s/%d/R1000G1 ", DeviceName, DeviceUnit, DeviceName, DeviceUnit);
- X } else {
- X if (LogToStdout == 0)
- X strcpy(redir, " >null: <null: ");
- X }
- X if (LogToStdout == 0)
- X proc->pr_ConsoleTask = (APTR)BTOCP(NullFH, struct FileHandle *)->fh_Port;
- X
- X sprintf(buf, "%s%s%s -Getty -DEVICE %s -UNIT %d", arg0, redir, Pas->pw_shell_argn, DeviceName, DeviceUnit);
- X
- X DirLock = (BPTR)Lock(Pas->pw_dir, SHARED_LOCK);
- X if (DirLock)
- X oldDir = (BPTR)CurrentDir(DirLock);
- X
- X ulog(1, "Execute %s\n", buf);
- X
- X Execute(buf, NullFH, NullFH);
- X
- X proc->pr_ConsoleTask = oldConsoleTask;
- X
- X if (DirLock)
- X UnLock(CurrentDir(oldDir));
- X
- X ulog(1, "ran\n");
- X}
- X
- END_OF_FILE
- if test 1689 -ne `wc -c <'src/getty/passwd.c'`; then
- echo shar: \"'src/getty/passwd.c'\" unpacked with wrong size!
- fi
- # end of 'src/getty/passwd.c'
- fi
- if test -f 'src/include/config.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/include/config.h'\"
- else
- echo shar: Extracting \"'src/include/config.h'\" \(1625 characters\)
- sed "s/^X//" >'src/include/config.h' <<'END_OF_FILE'
- X
- X/*
- X * CONFIG.H
- X *
- X * OBSOLETE, DO NOT USE
- X */
- X
- Xchar *FindConfig(char *);
- Xchar *GetConfig(char *, char *);
- X
- X#define USERNAME "UserName"
- X#define NODENAME "NodeName"
- X#define REALNAME "RealName"
- X#define DEBUGNAME "Debug"
- X#define NEWSFEED "NewsFeed"
- X#define ORGANIZATION "Organization"
- X#define FILTER "Filter" /* can be run in the foregnd */
- X#define RFILTER "RFilter" /* can be run in the background */
- X#define EDITOR "MailEditor"
- X#define HOME "Home"
- X
- X/*
- X *
- X * This idea (and base) for this code was written by Fred Cassirer 10/9/88
- X * as a Config file for News programs, to whom I say Thanx!
- X *
- X * It has since been expanded to include all the directory paths and some
- X * command/filenames. This is to eliminate the forced use of hardcoding in
- X * the executables.
- X *
- X * Simply change any of these you may need to, and recompile as needed.
- X *
- X * Sneakers 11/21/88
- X *
- X */
- X
- X#define MAXGROUPS 1024 /* Maximum # of subscribed newsgroups */
- X#define MAXFILES 300 /* Max # of files in any news or spool directory */
- X
- X#define NEWSGROUPS "uulib:NewsGroups/" /* List of subscribed newsgroups */
- X#define SAVEDIR "uunews:Save/" /* Place to save interesting article */
- X#define NEWSDIR "uunews:" /* Directory to deposit the news */
- X
- X#define ERRORFILE "uuspool:error.log" /* File to hold any errors */
- X
- X#ifdef NOTDEF
- X
- X#define CRONTAB "uulib:CronTab" /* Actual crontab file location */
- X#define CRONERR "uuspool:CronErro" /* Location of cron error file */
- X
- X#define CONFILE "uulib:Config" /* Location of the config file */
- X
- X#endif
- X
- X/* #include <proto/all.h> */
- X
- END_OF_FILE
- if test 1625 -ne `wc -c <'src/include/config.h'`; then
- echo shar: \"'src/include/config.h'\" unpacked with wrong size!
- fi
- # end of 'src/include/config.h'
- fi
- if test -f 'src/lib/config.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/lib/config.c'\"
- else
- echo shar: Extracting \"'src/lib/config.c'\" \(1505 characters\)
- sed "s/^X//" >'src/lib/config.c' <<'END_OF_FILE'
- X
- X/*
- X * CONFIG.C
- X *
- X * (C) Copyright 1989-1990 by Matthew Dillon, All Rights Reserved.
- X *
- X * Extract fields from UULIB:Config
- X */
- X
- X#include <stdio.h>
- X#include <stdlib.h>
- X#include <config.h>
- X
- X#define CTLZ ('z'&0x1F)
- X
- Xstatic char *ConfBuf = NULL;
- X
- Xchar *
- XFindConfig(field)
- Xchar *field;
- X{
- X char *str;
- X short flen = strlen(field);
- X
- X if (ConfBuf == NULL) {
- X FILE *fi = fopen("UULIB:Config", "r");
- X if (fi) {
- X long buflen;
- X fseek(fi, 0L, 2);
- X buflen = ftell(fi);
- X fseek(fi, 0L, 0);
- X if (buflen > 0 && (ConfBuf = malloc(buflen + 1))) {
- X fread(ConfBuf, buflen, 1, fi);
- X ConfBuf[buflen] = CTLZ; /* can't use \0 */
- X for (str = ConfBuf; *str; ++str) {
- X char *bup;
- X if (*str == '\n') { /* make separate strs */
- X *str = 0;
- X /* remove white space at end */
- X for (bup = str - 1; bup >= ConfBuf && (*bup == ' ' || *bup == 9); --bup)
- X *bup = 0;
- X }
- X }
- X } else {
- X ConfBuf = NULL;
- X }
- X }
- X }
- X if (ConfBuf == NULL)
- X return(NULL);
- X /*
- X * Search ConfBuf for Field<space/tab>
- X */
- X
- X for (str = ConfBuf; *str != CTLZ; str += strlen(str) + 1) {
- X if (*str == 0)
- X continue;
- X if (strncmp(str, field, flen) == 0 && (str[flen] == ' ' || str[flen] == '\t')) {
- X str += flen;
- X while (*str == ' ' || *str == 9)
- X ++str;
- X return(str);
- X }
- X }
- X return(NULL);
- X}
- X
- Xchar *
- XGetConfig(field, def)
- Xchar *field;
- Xchar *def;
- X{
- X char *result = FindConfig(field);
- X
- X if (result == NULL)
- X result = def;
- X return(result);
- X}
- X
- END_OF_FILE
- if test 1505 -ne `wc -c <'src/lib/config.c'`; then
- echo shar: \"'src/lib/config.c'\" unpacked with wrong size!
- fi
- # end of 'src/lib/config.c'
- fi
- if test -f 'src/lib/getpwnam.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/lib/getpwnam.c'\"
- else
- echo shar: Extracting \"'src/lib/getpwnam.c'\" \(1815 characters\)
- sed "s/^X//" >'src/lib/getpwnam.c' <<'END_OF_FILE'
- X
- X/*
- X * GETPWNAM.C
- X *
- X * (C) Copyright 1989-1990 by Matthew Dillon, All Rights Reserved.
- X *
- X * (UUCP source support)
- X */
- X
- X#include <stdio.h>
- X#include <stdlib.h>
- X#include <pwd.h>
- X
- Xstatic char *Breakout();
- X
- Xchar *PasswdFile = "UULIB:passwd";
- X
- Xstruct passwd *
- Xgetpwnam(name)
- Xchar *name;
- X{
- X FILE *fi = fopen(PasswdFile, "r");
- X char *buf = malloc(256);
- X static char User[32];
- X static char Passwd[32];
- X static char Dir[128];
- X static char Shell[256];
- X static struct passwd Pas = { User, Passwd, 0, 0, 0, "", "", Dir, Shell };
- X
- X if (fi == NULL)
- X return(NULL);
- X
- X while (fgets(buf, 256, fi)) {
- X char *ptr = buf;
- X char *arg;
- X
- X arg = Breakout(&ptr);
- X if (strcmp(name, arg) != 0)
- X continue;
- X strcpy(Pas.pw_name, arg);
- X strcpy(Pas.pw_passwd, Breakout(&ptr));
- X Pas.pw_uid = atoi(Breakout(&ptr));
- X Pas.pw_gid = atoi(Breakout(&ptr));
- X Breakout(&ptr); /* finger info */
- X strcpy(Pas.pw_dir, Breakout(&ptr));
- X strcpy(Pas.pw_shell, Breakout(&ptr));
- X
- X {
- X short i = strlen(Pas.pw_dir) - 1;
- X if (i >= 0 && Pas.pw_dir[i] != ':' && Pas.pw_dir[i] != '/') {
- X Pas.pw_dir[i++] = '/';
- X Pas.pw_dir[i] = 0;
- X }
- X }
- X
- X {
- X char *str;
- X
- X Pas.pw_shell_arg0 = Pas.pw_shell;
- X for (str = Pas.pw_shell; *str && *str != ' ' && *str != 9; ++str);
- X if (*str) {
- X *str = 0;
- X ++str;
- X while (*str == ' ' || *str == 9)
- X ++str;
- X Pas.pw_shell_argn = str;
- X } else {
- X Pas.pw_shell_argn = str;
- X }
- X }
- X
- X
- X fclose(fi);
- X return(&Pas);
- X }
- X fclose(fi);
- X return(NULL);
- X}
- X
- Xstatic
- Xchar *
- XBreakout(pptr)
- Xchar **pptr;
- X{
- X char *base;
- X char *ptr;
- X
- X base = *pptr;
- X if (base == NULL)
- X return("");
- X for (ptr = base; *ptr && *ptr != '\n' && *ptr != ','; ++ptr);
- X if (*ptr == ',') {
- X *pptr = ptr + 1;
- X *ptr = 0;
- X } else {
- X *pptr = NULL;
- X *ptr = 0;
- X }
- X return(base);
- X}
- X
- END_OF_FILE
- if test 1815 -ne `wc -c <'src/lib/getpwnam.c'`; then
- echo shar: \"'src/lib/getpwnam.c'\" unpacked with wrong size!
- fi
- # end of 'src/lib/getpwnam.c'
- fi
- if test -f 'src/lib/log.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/lib/log.c'\"
- else
- echo shar: Extracting \"'src/lib/log.c'\" \(1273 characters\)
- sed "s/^X//" >'src/lib/log.c' <<'END_OF_FILE'
- X
- X/*
- X * LOG.C
- X *
- X * (C) Copyright 1989-1990 by Matthew Dillon, All Rights Reserved.
- X *
- X * ulog(level, ctl, args...)
- X */
- X
- X#include <proto/all.h>
- X#include <stdio.h>
- X#include <stdlib.h>
- X#include <fcntl.h>
- X#include <time.h>
- X
- X#include "log.h"
- X
- Xint LogLevel = -1;
- Xint LogToStdout = 0;
- Xchar *LogProgram = "-";
- Xchar *LogHost = "-";
- Xchar *LogWho = "-";
- Xchar *LogFile = "UUSPOOL:LOGFILE";
- Xchar LogBuf[512];
- X
- Xvoid
- Xulog(level, ctl, arg1, arg2, arg3, arg4, arg5, arg6)
- Xint level;
- Xchar *ctl;
- Xlong arg1, arg2, arg3, arg4, arg5, arg6;
- X{
- X long clock;
- X struct tm *ut;
- X int logfd;
- X int len;
- X
- X if (level > LogLevel)
- X return;
- X
- X (void)time(&clock);
- X ut = localtime(&clock);
- X
- X sprintf(LogBuf, "(%d/%d-%d:%02d:%02d) %s,%s,%s ",
- X ut->tm_mon+1, ut->tm_mday, ut->tm_hour, ut->tm_min, ut->tm_sec,
- X LogProgram,
- X LogHost,
- X LogWho
- X );
- X sprintf(LogBuf + strlen(LogBuf), ctl, arg1, arg2, arg3, arg4, arg5, arg6);
- X
- X len = strlen(LogBuf);
- X LogBuf[len++] = '\n';
- X LogBuf[len] = 0;
- X
- X DEBUG(0, "%s", LogBuf);
- X
- X if (LogToStdout) {
- X write(1, LogBuf, len);
- X return;
- X }
- X
- X logfd = open(LogFile, O_CREAT|O_WRONLY|O_APPEND, 0644);
- X if (logfd >= 0) {
- X write(logfd, LogBuf, len);
- X close(logfd);
- X } else {
- X fprintf(stderr, "Can't open %s\n", LogFile);
- X }
- X}
- X
- END_OF_FILE
- if test 1273 -ne `wc -c <'src/lib/log.c'`; then
- echo shar: \"'src/lib/log.c'\" unpacked with wrong size!
- fi
- # end of 'src/lib/log.c'
- fi
- if test -f 'src/sendmail/parse.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/sendmail/parse.c'\"
- else
- echo shar: Extracting \"'src/sendmail/parse.c'\" \(1232 characters\)
- sed "s/^X//" >'src/sendmail/parse.c' <<'END_OF_FILE'
- X
- X/*
- X * PARSE.C
- X *
- X * (C) Copyright 1989-1990 by Matthew Dillon, All Rights Reserved.
- X */
- X
- X#include <proto/all.h>
- X#include <stdio.h>
- X#include <stdlib.h>
- X
- X/*
- X * PARSEADDRESS()
- X *
- X * Takes an address containing ! @ % : and converts it to a level 3 ! path.
- X *
- X * [path]@mach -> mach[!path]
- X * [path]%mach -> mach[!path]
- X * patha:pathb -> patha!pathb
- X * patha:pathb:pathc -> patha!pathb!pathc
- X */
- X
- XParseAddress(str, buf, len)
- Xchar *str;
- Xchar *buf;
- Xshort len;
- X{
- X short i;
- X short j;
- X char *base = buf;
- X char *ParseAddress2();
- X
- X for (i = j = 0; i < len; ++i) {
- X if (str[i] == ':') {
- X buf = ParseAddress2(str + j, buf, i - j);
- X *buf++ = '!';
- X j = i + 1;
- X }
- X }
- X buf = ParseAddress2(str + j, buf, i - j);
- X *buf = 0;
- X for (i = 0; base[i] && base[i] != '!'; ++i);
- X return((int)i);
- X}
- X
- X/*
- X * deals with !, @, and %
- X */
- X
- Xchar *
- XParseAddress2(addr, buf, len)
- Xchar *addr;
- Xchar *buf;
- Xshort len;
- X{
- X short i;
- X
- X for (i = len - 1; i >= 0; --i) {
- X if (addr[i] == '@' || addr[i] == '%') {
- X short j = len - i;
- X strncpy(buf, addr + i + 1, j - 1);
- X buf += j - 1;
- X len -= j;
- X if (len)
- X *buf++ = '!';
- X }
- X }
- X strncpy(buf, addr, len);
- X buf += len;
- X return(buf);
- X}
- X
- X
- END_OF_FILE
- if test 1232 -ne `wc -c <'src/sendmail/parse.c'`; then
- echo shar: \"'src/sendmail/parse.c'\" unpacked with wrong size!
- fi
- # end of 'src/sendmail/parse.c'
- fi
- if test -f 'src/uucico/DMakefile' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/uucico/DMakefile'\"
- else
- echo shar: Extracting \"'src/uucico/DMakefile'\" \(974 characters\)
- sed "s/^X//" >'src/uucico/DMakefile' <<'END_OF_FILE'
- X
- X# DMakefile
- X
- XOD=ltmp:uucp/
- XEXE= uucp:c/
- XSYMS= uucp:src/lib/all.m
- X
- XCFLAGS= -iuucp:src/include/ -cq
- X
- XLOPTS= SC SD LIB uucp:src/lib/uucp.lib lib:lc.lib lib:amiga.lib
- X
- XSRCS=gio.c sysdep.c uucp.c uupoll.c uuxqt.c modem.c uucico.c \
- X uuhosts.c uuname.c uux.c
- X
- XOBJS=$(SRCS:"*.c":"$(OD)*.o")
- X
- Xall: $(EXE)uucico $(EXE)uuxqt $(EXE)uupoll \
- X $(EXE)uux $(EXE)uuname $(EXE)uucp
- X
- X$(EXE)uucico: $(OD)gio.o $(OD)sysdep.o $(OD)modem.o $(OD)uucico.o
- X blink FROM lib:cres.o %(right) ADDSYM $(LOPTS) TO %(left)
- X
- X$(EXE)uuxqt: $(OD)uuxqt.o
- X blink FROM lib:cres.o %(right) $(LOPTS) TO %(left)
- X
- X$(EXE)uupoll: $(OD)uupoll.o
- X blink FROM lib:cres.o %(right) $(LOPTS) TO %(left)
- X
- X$(EXE)uux: $(OD)uux.o
- X blink FROM lib:cres.o %(right) $(LOPTS) TO %(left)
- X
- X$(EXE)uuname: $(OD)uuname.o
- X blink FROM lib:cres.o %(right) $(LOPTS) TO %(left)
- X
- X$(EXE)uucp: $(OD)uucp.o
- X blink FROM lib:cres.o %(right) $(LOPTS) TO %(left)
- X
- X$(OBJS) : $(SRCS)
- X lc $(CFLAGS) -H$(SYMS) -o%(left) %(right)
- X
- END_OF_FILE
- if test 974 -ne `wc -c <'src/uucico/DMakefile'`; then
- echo shar: \"'src/uucico/DMakefile'\" unpacked with wrong size!
- fi
- # end of 'src/uucico/DMakefile'
- fi
- if test -f 'src/uucico/sysdep.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/uucico/sysdep.h'\"
- else
- echo shar: Extracting \"'src/uucico/sysdep.h'\" \(1876 characters\)
- sed "s/^X//" >'src/uucico/sysdep.h' <<'END_OF_FILE'
- X/* Amiga Port by William Loftus */
- X/* Changes are Copyright 1988 by William Loftus. All rights reserved. */
- X
- X/*
- X * Declarations of gnuucp's system-dependent routines, which
- X * are in the file sysdep.c (a link to one of many system dependent
- X * implementations).
- X */
- X
- Xvoid munge_filename();
- X
- X/*
- X * Basement level I/O routines
- X *
- X * xwrite() writes a character string to the serial port
- X * xgetc() returns a character from the serial port, or an EOF for timeout.
- X * sigint() restores the state of the serial port on exit.
- X * openline() opens a serial port for an incoming call, waiting for carrier.
- X * openout() opens a serial port for an outgoing call.
- X */
- Xint xwrite(); /* filedesc, buffer, count */
- Xint xgetc(); /* No arg */
- Xint sigint(); /* No arg */
- Xvoid openline(); /* ttyname */
- Xint openout(); /* ttyname */
- Xvoid amiga_setup(); /* No arg */
- X
- X
- X/*
- X * Uucp work queue scan.
- X *
- X * gotsome = work_scan(hostname);
- X *
- X * Result is 1 if there is work, 0 if none. If result is 1, and work_scan
- X * is called a second time without an intervening work_done, it won't
- X * rescan the directory but simply returns a 1.
- X *
- X * workfile = work_next();
- X *
- X * Result is char * to static filename; or NULL if no more.
- X * We only read the directory once. If callers want more to rescan it
- X * in case more work is here, they should call work_scan again.
- X *
- X * void work_done();
- X * Clean up a work scan. No need to call this if work_next returned NULL;
- X * it has cleaned up.
- X */
- Xextern int work_scan();
- Xextern char *work_next();
- Xextern void work_done();
- X
- X/* SERIAL PORT DELARATIONS ALSO TIMER */
- Xextern struct MsgPort *CreatePort();
- Xextern struct IOExtSer *Read_Request;
- Xextern unsigned char rs_in[2];
- Xextern struct IOExtSer *Write_Request;
- Xextern unsigned char rs_out[2];
- Xextern struct timerequest Timer;
- Xextern struct MsgPort *Timer_Port;
- X
- X
- END_OF_FILE
- if test 1876 -ne `wc -c <'src/uucico/sysdep.h'`; then
- echo shar: \"'src/uucico/sysdep.h'\" unpacked with wrong size!
- fi
- # end of 'src/uucico/sysdep.h'
- fi
- if test -f 'src/uucico/uucp.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/uucico/uucp.h'\"
- else
- echo shar: Extracting \"'src/uucico/uucp.h'\" \(1358 characters\)
- sed "s/^X//" >'src/uucico/uucp.h' <<'END_OF_FILE'
- X/*
- X * @(#)uucp.h 1.5 87/08/13 -- uucp.h Copyright 1987 by John Gilmore
- X *
- X * Header file for gnuucp.
- X *
- X * Pieces that look like they might be taken from Unix uucp are
- X * cribbed with the aid of public domain uucp modules (like the F-protocol)
- X * that use that interface.
- X *
- X * Ported to Amiga by William Loftus
- X * Changes Copyright 1988 by William Loftus. All rights reserved.
- X */
- X
- X#define Ifn FOO /* file descriptor of the "phone line" */
- X
- X#define ASSERT(cond, msg, moremsg, huh) /**/
- X
- X/* I may have these flipped from what Unix uses... */
- X/* BUT: my code depends on these values in if (foo()) statements, sigh */
- X#define SUCCESS 0
- X#define FAIL 1
- X
- X#define LOG
- X
- X#define MAXMSGLEN ((NAMESIZE*4)+SLOP) /* ?>?? FIXME */
- X#define MAXMSGTIME 60 /* Timeout period for rdmsg */
- X#define MAX_HOST 20 /* Host name length (uucp does 7) */
- X#define MAX_LSYS 500 /* Max length of an L.sys line in chars */
- X#define MAX_CTLLINE 100 /* Max length of a usenet.ctl line */
- X
- X#define CTL_DELIM " \t\n\r" /* Delimiters for usenet.ctl */
- X
- Xextern int debug; /* Debugging level */
- X
- X/*
- X * Timeout for raw characters -- if we don't hear a char within BYTE_TIMEOUT
- X * seconds, we assume the other side has gone away. Has nothing to do with
- X * retransmission timeouts (if any!).
- X */
- X#define BYTE_TIMEOUT 40
- X#define BYTE_TO 40
- X
- X#define SLOP 10 /* Slop space on arrays */
- X
- END_OF_FILE
- if test 1358 -ne `wc -c <'src/uucico/uucp.h'`; then
- echo shar: \"'src/uucico/uucp.h'\" unpacked with wrong size!
- fi
- # end of 'src/uucico/uucp.h'
- fi
- if test -f 'src/uucico/version.doc' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/uucico/version.doc'\"
- else
- echo shar: Extracting \"'src/uucico/version.doc'\" \(1459 characters\)
- sed "s/^X//" >'src/uucico/version.doc' <<'END_OF_FILE'
- X
- X<all-Programs>
- X Dec-89 Matthew Dillon. Modified to conform with my release.
- X Specifically, now use common library routines in uucp:src/lib,
- X file locking routines, logging routines, etc...
- X
- X
- X
- XUUXQT:
- X
- X .01 First sub release number assigned.
- X
- X
- X 11-Jul-88 by Dan Schein
- X
- X Added support for unknown command request(s)
- X Added support for a RMAIL command
- X Added "New Files Received." message
- X Added Beta Version number
- X
- XUUCICO:
- X
- X .06
- X as of date 25 January 1989
- X
- X .05
- X G protocol now windows, window = 2. Normally
- X arbitrates for window size, can be defeated (forced to
- X 1) by using -n option.
- X
- X Accepts filenames ~/path or ~user/path. ~/path uses
- X UUPUB: while ~user/path looks up the home directory
- X in the Getty:Passwd file, defaulting to UUPUB: if
- X the requested user could not be found.
- X
- X .04
- X only deletes queue files in a set if ALL make it
- X across... before would delete each file individually.
- X
- X added security feature, does not allow remote end
- X to send C.#? files to our uuspool:
- X
- X .02
- X G protocol rewritten from scratch
- X
- X .01
- X Security list (UULIB:Security) allowed directories
- X for remote requests.
- X
- X Getty support
- X
- X File Locking (lib/lockfile.c)
- X
- XUUCP:
- X .00 First sub release assigned
- X
- XUUNAME:
- X .00 First sub release assigned
- X
- XUUX:
- X .01 Uses UULIB: instead of UUCP:LIB
- X
- XUUHOSTS:
- X .01 Uses UULIB: instead of UUCP:LIB
- X
- XUUPOLL:
- X .02 Uses UULIB: instead of UUCP:LIB
- X Uses run >nil: <nil: instead of brun
- X
- END_OF_FILE
- if test 1459 -ne `wc -c <'src/uucico/version.doc'`; then
- echo shar: \"'src/uucico/version.doc'\" unpacked with wrong size!
- fi
- # end of 'src/uucico/version.doc'
- fi
- if test -f 'src/uuser/misc.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/uuser/misc.c'\"
- else
- echo shar: Extracting \"'src/uuser/misc.c'\" \(1880 characters\)
- sed "s/^X//" >'src/uuser/misc.c' <<'END_OF_FILE'
- X
- X/*
- X * MISC.C - support routines - Phillip Lindsay (C) Commodore 1986
- X * You may freely distribute this source and use it for Amiga Development -
- X * as long as the Copyright notice is left intact.
- X *
- X * (C) Copyright 1989-1990 by Matthew Dillon, All Rights Reserved.
- X *
- X * 30-SEP-86
- X *
- X * major modifications by Matthew Dillon for my PIPE: and other devices,
- X * but basic theorem still Phil's.
- X */
- X
- X#include <exec/types.h>
- X#include <exec/nodes.h>
- X#include <exec/lists.h>
- X#include <exec/ports.h>
- X#include <libraries/dos.h>
- X#include <libraries/dosextens.h>
- X#include <proto/all.h>
- X
- Xtypedef struct Node NODE;
- X
- Xextern void returnpkt();
- X
- Xvoid
- Xreturnpktplain(packet, myproc)
- Xstruct DosPacket *packet;
- Xstruct Process *myproc;
- X{
- X returnpkt(packet, myproc, packet->dp_Res1, packet->dp_Res2);
- X}
- X
- X
- Xvoid
- Xreturnpkt(packet, myproc, res1, res2)
- Xregister struct DosPacket *packet;
- Xstruct Process *myproc;
- Xlong res1, res2;
- X{
- X struct Message *mess;
- X struct MsgPort *replyport;
- X
- X packet->dp_Res1 = res1;
- X packet->dp_Res2 = res2;
- X replyport = packet->dp_Port;
- X mess = packet->dp_Link;
- X packet->dp_Port = &myproc->pr_MsgPort;
- X mess->mn_Node.ln_Name = (char *)packet;
- X mess->mn_Node.ln_Succ = NULL;
- X mess->mn_Node.ln_Pred = NULL;
- X PutMsg(replyport, mess);
- X}
- X
- X
- X/*
- X * taskwait() ... Waits for a message to arrive at your port and
- X * extracts the packet address which is returned to you.
- X */
- X
- Xstruct DosPacket *
- Xtaskwait(myproc)
- Xstruct Process *myproc;
- X{
- X struct MsgPort *myport;
- X struct Message *mymess;
- X
- X myport = &myproc->pr_MsgPort;
- X WaitPort(myport);
- X mymess = (struct Message *)GetMsg(myport);
- X return((struct DosPacket *)mymess->mn_Node.ln_Name);
- X}
- X
- Xtaskpktrdy(myproc)
- Xstruct Process *myproc;
- X{
- X if (((NODE *)myproc->pr_MsgPort.mp_MsgList.lh_Head)->ln_Succ == NULL)
- X return(0);
- X return(1);
- X}
- X
- END_OF_FILE
- if test 1880 -ne `wc -c <'src/uuser/misc.c'`; then
- echo shar: \"'src/uuser/misc.c'\" unpacked with wrong size!
- fi
- # end of 'src/uuser/misc.c'
- fi
- if test -f 'src/uuser/uuser.doc' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/uuser/uuser.doc'\"
- else
- echo shar: Extracting \"'src/uuser/uuser.doc'\" \(2039 characters\)
- sed "s/^X//" >'src/uuser/uuser.doc' <<'END_OF_FILE'
- X
- X UUSER.DOC
- X
- X UUSER V1.00 Beta
- X
- X UUSER: (C) Copyright 1989-1990 by Matthew Dillon, All Rights Reserved.
- X
- X
- X Currently UUSER: works only with single sessions started
- X by Getty (this has to do with how UUSER: deals with carrier
- X detect). THIS WILL BE FIXED.
- X
- X Openning UUSER:
- X
- X fopen("UUSER:devicename/unit/options", ...);
- X
- X Example:
- X (suggested)
- X
- X int fd = open("UUSER:serial.device/0/R1000", O_RDWR | O_CREAT | O_TRUNC);
- X
- X (also can do this -- see below for problems using
- X stdio to read)
- X
- X FILE *rfi = fopen("UUSER:serial.device/0/R1000", "r");
- X FILE *wfi = fopen("UUSER:serial.device/0/R1000", "w");
- X
- X
- X Features:
- X
- X * 1K asynchronous write buffer for each file handle. I.E.
- X your write() will return when 1K or less remains to be
- X written (UUSER: has a 1K buffer for spooling these per
- X file handle)
- X
- X * selectable read timeout
- X
- X * read poll
- X
- X * carrier lost handling
- X
- X General:
- X
- X (1) Use Level 1 I/O if you can (read/write)
- X read() returns 0 on timeout, -1 on carrier lost
- X otherwise, read() returns the immediate number of
- X data bytes ready up to the amount you requested.
- X (i.e. if you read(0,buf,256) you can get anywhere from
- X -1, 0, 1 to 256 back).
- X
- X write() returns the number you wrote or -1 (lost carrier)
- X
- X To 'poll' data ready you can read(0, NULL, 0) .. reading
- X 0 bytes returns 0 (data ready) or -1 (data not ready).
- X NOTE: 0 (data ready) will be returned if carrier is lost
- X when you read 0 bytes... this is so your program thinks
- X data is ready and when it does a real read it finds that
- X carrier was lost!
- X
- X (2) If you want to use Level 2 I/O (stdio) I suggest you use
- X it for writing only. If you really want to use it for
- X reading remember that the timeout will cause an EOF
- X condition which must be cleared (clrerr()). And you
- X must call ferror() to determine whether an EOF is an
- X EOF (timeout()) or an actual error (lost carrier).
- X
- X REFER TO UUSERDUMP.C for a working source example.
- X
- X
- END_OF_FILE
- if test 2039 -ne `wc -c <'src/uuser/uuser.doc'`; then
- echo shar: \"'src/uuser/uuser.doc'\" unpacked with wrong size!
- fi
- # end of 'src/uuser/uuser.doc'
- fi
- echo shar: End of archive 2 \(of 16\).
- cp /dev/null ark2isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 16 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
- --
- Submissions to comp.sources.amiga and comp.binaries.amiga should be sent to:
- amiga@cs.odu.edu
- or amiga@xanth.cs.odu.edu ( obsolescent mailers may need this address )
- or ...!uunet!xanth!amiga ( very obsolescent mailers need this address )
-
- Comments, questions, and suggestions should be addressed to ``amiga-request''
- (please only use ``amiga'' for actual submissions) at the above addresses.
-